package dominio.DAO;

import java.util.ArrayList;
import java.util.List;

import dominio.Empresa;

public class EmpresaDAO {
    private BaseDatosMock bdMock;

    public void setBaseDatosMock(BaseDatosMock bdMock) {
        this.bdMock = bdMock;
    }

    public void crearEmpresa(Empresa empresa) {
        bdMock.devolverEmpresas().add(empresa);
    }
    
    public void modificarEmpresa(String codigo, String razonSocial, String identificacion, String telefono, String correo, String direccion, 
    		String ciudad, String estado, String pais, String nombreContacto, String metodoPago, String convenio){
    	
    	Empresa empresa = obtenerEmpresaPorCodigo(codigo);
		empresa.setRazonSocial(razonSocial);
		empresa.setIdentificacion(identificacion);
		empresa.setTelefono(telefono);
		empresa.setCorreo(correo);
		empresa.setDireccion(direccion);
		empresa.setCiudad(ciudad);
		empresa.setEstado(estado);
		empresa.setPais(pais);
		empresa.setNombreContacto(nombreContacto);
		empresa.setMetodoPago(metodoPago);
		empresa.setConvenio(convenio);
	}
    
	public ArrayList<Empresa> devolverListaBusquedaEmpresasPorRazonSocial(String razonSocial){
        
		ArrayList<Empresa> resultadoBusquedaEmpresas = new ArrayList<Empresa>();
		for(int i = 0; i < devolverCantidadEmpresas(); i++){            
			Empresa e = devolverEmpresas().get(i);          
            if(e.getRazonSocial().indexOf(razonSocial) > -1){
            	resultadoBusquedaEmpresas.add(e);
            }
        }		
		return resultadoBusquedaEmpresas;
    }
    
	public void eliminarEmpresa(String codigo){
        for(int i = 0; i < devolverCantidadEmpresas(); i++){            
        	Empresa e = devolverEmpresas().get(i);          
            if(e.getCodigo().equals(codigo)){
                devolverEmpresas().remove(i);
            }
        }
	}
    
	public Empresa obtenerEmpresaPorCodigo(String codigo){
		Empresa empresa = null;
		for(int i = 0; i < devolverCantidadEmpresas(); i++){    
			Empresa e = devolverEmpresas().get(i);            
            if(e.getCodigo().equals(codigo)){
            	empresa = e;
                break;
            }
		}
		return empresa;
	}
	
	public int devolverCantidadEmpresas(){
        return devolverEmpresas().size();
    }

    public List<Empresa> devolverEmpresas() {
        return bdMock.devolverEmpresas();
    }
    
    public void limpiaListaEmpresa() {
        bdMock.devolverEmpresas().clear();
    }
}